package br.com.caelum.model;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

@Entity
@Table(name="matricula", uniqueConstraints = {@UniqueConstraint(columnNames={"periodo", "aluno_id", "turma_id"})})
public class Matricula {
	@Id @GeneratedValue
	@Column(name="matricula_id")
	private Long matricula_id;
	
	private int periodo;
	
	@ManyToOne
    @JoinColumn(name="aluno_id")
	private Aluno aluno;
	
	@ManyToOne
    @JoinColumn(name="turma_id")
	private Turma turma;
	
	private BigDecimal nota1;
	
	private BigDecimal nota2;
	
	private BigDecimal nota3;
	
	private BigDecimal nota4;
	
	private BigDecimal media;

	public Long getMatricula_id() {
		return matricula_id;
	}

	public void setMatricula_id(Long matricula_id) {
		this.matricula_id = matricula_id;
	}

	public int getPeriodo() {
		return periodo;
	}

	public void setPeriodo(int periodo) {
		this.periodo = periodo;
	}

	public Aluno getAluno() {
		return aluno;
	}

	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}

	public Turma getTurma() {
		return turma;
	}

	public void setTurma(Turma turma) {
		this.turma = turma;
	}

	public BigDecimal getNota1() {
		return nota1;
	}

	public void setNota1(BigDecimal nota1) {
		this.nota1 = nota1;
	}

	public BigDecimal getNota2() {
		return nota2;
	}

	public void setNota2(BigDecimal nota2) {
		this.nota2 = nota2;
	}

	public BigDecimal getNota3() {
		return nota3;
	}

	public void setNota3(BigDecimal nota3) {
		this.nota3 = nota3;
	}

	public BigDecimal getNota4() {
		return nota4;
	}

	public void setNota4(BigDecimal nota4) {
		this.nota4 = nota4;
	}

	public BigDecimal getMedia() {
		return media;
	}

	public void setMedia(BigDecimal media) {
		this.media = media;
	}


}
